package bash

import (
	"crypto/md5"
	"encoding/base64"
	"encoding/hex"
	"fmt"

	"github.com/astaxie/beego/logs"
)

// MD5加密字符串
// 仅允许传入String
func MD5(str string) string {
	h := md5.New()
	h.Write([]byte(str))
	cipherStr := h.Sum(nil)
	return fmt.Sprintf("%s", hex.EncodeToString(cipherStr))
}

// Base64解码函数
func Base64Decode(str string) string {
	if str == "" {
		return ""
	}
	if TrimHtml(str) == "" {
		return ""
	}
	decodeBytes, err := base64.StdEncoding.DecodeString(str)
	if err != nil {
		logs.Error("Base64解码失败，请重试。" + err.Error())
		return ""
	}
	return string(decodeBytes)
}

// Base64编码函数
func Base64Encode(str string) string {
	if str == "" {
		return ""
	}
	return base64.StdEncoding.EncodeToString([]byte(str))
}
